# 给定一个非负整数 num，反复将各个位上的数字相加，直到结果为一位数。

# 示例:

# 输入: 38
# 输出: 2
# 解释: 各位相加的过程为：3 + 8 = 11, 1 + 1 = 2。 由于 2 是一位数，所以返回 2。


class Solution:
    def addDigits(self, num):
        """
        :type num: int
        :rtype: int


        ab = a * 10 + b 
        ab % 9 = (a*9 + a + b) % 9 = (a + b) % 9 
        abc = a * 100 + b * 10 + c 
        abc % 9 = ( a*99 + a + b + c) % 9 = (a + b + c) % 9
        """
        return 0 if num==0 else (num - 1) % 9 + 1


if __name__=='__main__':
    s=Solution()
    print(s.addDigits(38))
    